import fs from 'node:fs';
import { app } from 'electron'; 
import path from 'node:path';
import { nanoid } from 'nanoid';

/**
 * 去除文件路径的后缀名
 */
export function removeExt(_path: string) {
	return _path.replace(/\.[a-zA-Z0-9]+$/, '');
}

/**
 * 创建目录(存在则不操作，不存在则创建)
 */
export function mkdirIfExist(_path: string) {
	if (!fs.existsSync(_path)) {
		fs.mkdirSync(_path);
	}
}

/**
 * 生成临时目录路径
 */
export function tempDir(make: boolean = true) {
	const base = app.getPath('temp'); // 基础路径
	const prefix = app.getName() + '-'; // 目录前缀
	let _path=  path.join(base, prefix + nanoid()) // 拼接路径

	while (fs.existsSync(_path)) {
		// 路径存则重新拼接路径
		_path=  path.join(base, prefix + nanoid())
	}

	if (make) {
		// 创建目录
		fs.mkdirSync(_path);
	}

	return _path
}

/**
 * 删除目录下所有文件
 * @param dirPath 文件路径
 * @param isRoot 是否删除根目录
 */
export function delDir(dirPath: string, isRoot: boolean = true) {
	if (fs.existsSync(dirPath)) {
		fs.readdirSync(dirPath).forEach((file) => {
			const curPath = path.join(dirPath, file);
			if (fs.statSync(curPath).isDirectory()) {
				// 递归删除
				delDir(curPath, true);
			} else {
				// 删除文件
				fs.unlinkSync(curPath);
			}
		});
		if (isRoot) {
			// 删除文件夹
			fs.rmdirSync(dirPath);
		}
	}
}
